[STL]vector常见用法详解 您所在的位置:网站首页 vector insert用法 [STL]vector常见用法详解

[STL]vector常见用法详解

#[STL]vector常见用法详解| 来源: 网络整理| 查看: 265

目录

引入

常见用法介绍

1. vector的定义

2. vector容器内元素的访问

3. vector常用函数实例解析

1)push_back()

2)pop_back()

3)size()

4)clear()

5)insert()

6)erase()

vector的常见用途 

1. 存储数据

2. 用邻接表存储图

引入

vector翻译为向量,但你可以理解为“变长数组”,即vector会根据长度需要而自动改变。在算法题目中,会碰到只用普通数组会超内存的情况,这个时候vector的运用会使问题的解决便捷很多。另外,vector还可以用来以邻接表的方式存储图,这对无法使用邻接矩阵的题目(结点数太多)、以及害怕用指针实现邻接表的读者十分友好。

如果要使用vector,需要添加vector头文件,即#include。如果你之前只有C语言编程经验,记得在头文件下面添加一句using namespace std;

常见用法介绍 1. vector的定义

单独定义一个vector:

vector name;

上面这个定义相当于是一维数组name[SIZE],不过其长度可以根据需要进行变化,比较节省空间。说白了就是“变长数组”。

关于typename,可以是任何基本类型,如int, char, double, 结构体,也可以是其他STL容器。

需要注意的是,如果typename是STL容器(带),定义的时候需要在>>之间加上空格,因为一些使用C++11之前标准的编译器会将它当成移位操作,导致编译错误。

示例如下:  

vector name; vector name; //如果typename是STL容器,>>需要加空格 vectorname;

读者不难发现,示例三给出了vector二维数组的定义,你可以简单理解为两个维度都可以变长的二维数组。

然后来看定义vector数组的方法:

vector Arrayname[arraySize];

这样Arrayname[0]~Arrayname[arraySize-1]中每一个都是一个vector容器。

与vector name不同的是,这种写法的一位长度已经固定为arraySize,另一维才是“变长”的。

2. vector容器内元素的访问

这里引入一个概念——迭代器。迭代器(iterator)可以理解为一种类似指针的东西,定义为:

vector::iterator it;

这样it就是一个vector::iterator型的变量,typename为定义vector时填写的类型。

vector::iterator it; //typename为int vector::iterator it; //typename为double

这样,我们就得到了迭代器it,并且可以通过*it来访问vector里的元素。

例如,有这样定义的一个vector容器:

vectorvi; for(int i = 1; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有